package cc.rengu.igas.bomp.common.dao;


import cc.rengu.igas.bomp.common.entity.TxnLimitCfg;

import java.util.List;

/**
 * 交易限额配置表操作接口类
 * Created by 王成 on 2020/3/2
 */
public interface TxnLimitCfgMapper {

    /**
     * 登记限额配置信息
     *
     * @param txnLimitCfg 限额配置信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertTxnLimitCfg(TxnLimitCfg txnLimitCfg) throws Exception;

    /**
     * 根据主键更新限额配置信息
     *
     * @param txnLimitCfg 限额配置信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateTxnLimitCfgByPrimaryKey(TxnLimitCfg txnLimitCfg) throws Exception;

    /**
     * 根据主键查询交易限额配置信息
     *
     * @param instId        多法人标识
     * @param limitType     限额类型
     * @param limitInst     限额主体
     * @param limitAcctType 限额账户类型
     * @return 交易限额配置信息
     * @throws Exception 异常
     */
    TxnLimitCfg selectTxnLimitCfgByPrimaryKey(String instId, String limitType, String limitInst, String limitAcctType) throws Exception;

    /**
     * 根据限额主体查询交易限额配置信息
     *
     * @param instId    多法人标识
     * @param limitInst 限额主体
     * @return 交易限额配置信息
     * @throws Exception 异常
     */
    List<TxnLimitCfg> selectTxnLimitCfgByLimitInst(String instId, String limitInst) throws Exception;

    /**
     * 查询交易限额配置信息
     *
     * @param instId    多法人标识
     * @param limitType 限额类型
     * @param limitInst 限额主体
     * @return 交易限额配置信息
     * @throws Exception 异常
     */
    List<TxnLimitCfg> selectTxnLimitCfgLimitTypeInst(String instId, String limitType, String limitInst) throws Exception;

}
